/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package reclamos;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.ResultSet;
import java.io.File;
import java.io.FileOutputStream;
import java.sql.*;
import java.util.ArrayList;
import org.omg.CORBA.BAD_CONTEXT;

public class Main {

    public static void main(String[] args) throws Exception, NullPointerException, VerifyError {
        String directorio_expedientes = "C:\\GestionATO\\ReclamosEquipaje\\DatosCSV\\Expedientes";
        String ruta_archivo_expedientes;
        File carpeta_expedientes = new File(directorio_expedientes);
        String[] lista = carpeta_expedientes.list();
        String directorio_vuelos = "C:\\GestionATO\\ReclamosEquipaje\\DatosCSV\\Vuelos";
        String ruta_archivo_vuelos;
        File carpeta_vuelos = new File(directorio_vuelos);
        String[] listavuelos = carpeta_vuelos.list();
        ArrayList<Integer> tamaños_exp= new ArrayList<Integer>();
        ArrayList<Integer> tamaños_vuelo=new ArrayList<Integer>();
//        String directorio_BagTags = "C:\\GestionATO\\ReclamosEquipaje\\DatosCSV\\BagTags";
//        String ruta_archivo_BagTags;
//        File carpeta_BagTags = new File(directorio_BagTags);
//        String[] listaBagTags = carpeta_BagTags.list();
//        String directorio_BagTags_Exp = "C:\\GestionATO\\ReclamosEquipaje\\DatosCSV\\BagTagsExpd";
//        String ruta_archivo_BagTags_Exp;
//        File carpeta_BagTags_Exp = new File(directorio_BagTags_Exp);
//        String[] listaBagTags_Exp = carpeta_BagTags_Exp.list();
        String directorio_gestionables = "C:\\GestionATO\\ReclamosEquipaje\\DatosCSV\\Gestionables";
        String ruta_archivo_Gestionables;
        File carpeta_gestionables = new File(directorio_gestionables);
        String[] listagestionables = carpeta_gestionables.list();
        String directorio_ClasATO = "C:\\GestionATO\\ReclamosEquipaje\\DatosCSV\\ClasATO";
        String ruta_archivo_ClasATO;
        File carpeta_ClasATO = new File(directorio_ClasATO);
        String[] listaClasATO = carpeta_ClasATO.list();
        String directorio_Costos = "C:\\GestionATO\\ReclamosEquipaje\\DatosCSV\\Costos";
        String ruta_archivo_Costos;
        File carpeta_Costos = new File(directorio_Costos);
        String[] listaCostos = carpeta_Costos.list();
        
        
        int i;

        conexion c1 = new conexion();
        conexion c2 = new conexion();
        conexion c3 = new conexion();
        conexion c4 = new conexion();
        conexion c5 = new conexion();

        System.out.println("\n \n============= CARGA DE ARCHIVOS DE RECLAMOS DE EQUIPAJE =============");
        //c1.borrartablas();

        for (i = 0; i < lista.length; i++) {
            ruta_archivo_expedientes = directorio_expedientes + "\\" + lista[i];
            Leercsvexpe l = new Leercsvexpe(ruta_archivo_expedientes);
            tamaños_exp.add(l.getSize());
        }
        System.out.println(" \n \n[Fase 1 de 8] Archivos de expedientes CSV ingresados en la base");
        c1.borrarrepetidos();

        c1.conexion.close();

        System.out.println("[Fase 2 de 8] Limpieza de expedientes lista");
        for (i = 0; i < listavuelos.length; i++) {
            ruta_archivo_vuelos = directorio_vuelos + "\\" + listavuelos[i];
            Leercsvvuelos v = new Leercsvvuelos(ruta_archivo_vuelos);
            tamaños_vuelo.add(v.getSize());
        }
        System.out.println("[Fase 3 de 8] Archivos de vuelos CSV ingresados en la base exitosamente");
       // if(c2.BDVacia("flex5"))
        c2.borrarrepetidosvuelos();
        System.out.println("[Fase 4 de 8] Limpieza de vuelos lista");
        c2.conexion.close();
        
       // if(c3.BDVacia("gestionable"))
       for (i = 0; i < lista.length; i++) {
            ruta_archivo_Gestionables = directorio_gestionables + "\\" + listagestionables[i];
            LeercsvGestionable g = new LeercsvGestionable(ruta_archivo_Gestionables);
        }
        System.out.println(" \n \n[Fase 5 de 8] Archivos de gestion CSV ingresados en la base"); 
        if(c3.BDVacia("clasato"))
        for (i = 0; i < lista.length; i++) {
            ruta_archivo_ClasATO = directorio_ClasATO + "\\" + listaClasATO[i];
            LeercsvClasAto c = new LeercsvClasAto(ruta_archivo_ClasATO);

        }
        System.out.println(" \n \n[Fase 6 de 8] Archivos de Clase ATO CSV ingresados en la base"); 
         for (i = 0; i < listaCostos.length; i++) {
            ruta_archivo_Costos = directorio_Costos + "\\" + listaCostos[i];
            LeercsvCostos c = new LeercsvCostos(ruta_archivo_Costos);
            ;
        }
        System.out.println("[Fase 3 de 8] Archivos de vuelos CSV ingresados en la base exitosamente");
       
        
//          INTEGRACION TABLA DE BAG TAG
//        for (i = 0; i < listaBagTags.length; i++) {
//            ruta_archivo_BagTags = directorio_BagTags + "\\" + listaBagTags[i];
//            LeercsvBagTags l = new LeercsvBagTags(ruta_archivo_BagTags);
//        }
//        for (i = 0; i < listaBagTags_Exp.length; i++) {
//            ruta_archivo_BagTags_Exp = directorio_BagTags_Exp + "\\" + listaBagTags_Exp[i];
//            LeercsvBagTags_Exp l = new LeercsvBagTags_Exp(ruta_archivo_BagTags_Exp);
//        }
//        System.out.println("[Fase 5 de 6] datos BagTag insertados");
//        c3.insertbagtagfinal();   
        c4.insertartablafinal();
        System.out.println("[Fase 7 de 8] Datos de expedientes, vuelos y adicionales consolidados en la base");
        c4.conexion.close();
        if (c5.Comprobacion(tamaños_exp)){
            System.out.println("Comprobacion tamaño expedientes OK");
       }else System.out.println("Comprobacion tamaño expedientes Revisar");
        if (c5.Comprobacion(tamaños_vuelo)){
        System.out.println("Comprobacion tamaño Vuelos OK");
       }else System.out.println("Comprobacion tamaño Vuelos Revisar");
        c5.insertarnegocio();
        System.out.println("[Fase 8 de 8] Tipo de Negocio, Subruta y Pais agregados");
        System.out.println("\nProceso completado! \n \n \n");
    }
}
